package com.cin.cma.common.exception;


import com.cin.cma.common.enums.JyServerErrorCode;
import com.cin.cma.common.enums.SystemErrorCode;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 描述：异常捕抓
 * 作者：李源
 * 日期：2021-06-18 11:52
 *
 * @author IsaAc
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class UserFriendlyException extends Exception {
    /**
     * 错误码：每个错误码对应不同的错误
     */
    private String code;

    /**
     * 抛出未知异常，详细看描述错误
     *
     * @param message 错误信息
     */
    public UserFriendlyException(String message) {
        super(message);
        this.code = SystemErrorCode.SYSTEM_ERROR.getCode();
    }

    public UserFriendlyException(SystemErrorCode errorCode, String message) {
        super(errorCode.getMessage() + "::" + message);
        this.code = errorCode.getCode();
    }

    public UserFriendlyException(JyServerErrorCode errorCode, String message) {
        super(errorCode.getMessage() + "::" + message);
        this.code = errorCode.getCode();
    }

    public UserFriendlyException(JyServerErrorCode errorCode) {
        super(errorCode.getMessage());
        this.code = errorCode.getCode();
    }

    /**
     * 抛出指定错误码异常
     *
     * @param errorCode 错误码
     * @param message   错误信息
     */
    public UserFriendlyException(String errorCode, String message) {
        super(message);
        this.code = errorCode;
    }
}
